協作圖(Collaboration Diagram,也叫合作圖)是一種互動圖(interaction diagram),強調的是傳送和接收訊息的對象之間的組織結構。一個協作圖顯示了一系列的對象和在這些對象之間的聯繫以及對象間傳送和接收的訊息。對象通常是命名或匿名的類的實例,也可以代表其他事物的實例,例如協作、組件和節點。使用協作圖來說明系統的動態情況。
協作圖(Collaboration Diagram)顯示某組對象如何為了由一個用例描述的一個系統事件而與另一組對象進行協作的互動圖。使用協作圖可以顯示對象角色之間的關係,如為實現某個操作或達到某種結果而在對象間交換的一組訊息。如果需要強調時間和序列,最好選擇序列圖;如果需要強調上下文相關,最好選擇協作圖。
協作圖用於顯示對象之間如何進行互動以執行特定用例或用例中特定部分的行為。設計員使用協作圖和序列圖確定並闡明對象的角色,這些對象執行用例的特定事件流。它們是主要的信息來源,用於確定類的職責和接口。
與序列圖不同,協作圖顯示了對象之間的關係。序列圖和協作圖表述的是相似的信息,但表述的方式卻不同。協作圖顯示對象之間的關係,它更有利於理解對給定對象的所有影響,也更適合過程設計。
協作圖的格式決定了它們更適合在分析活動中使用(請參見活動:用例分析)。它們特別適合用來描述少量對象之間的簡單互動。隨著對象和訊息數量的增多,理解協作圖將越來越困難。此外,協作圖很難顯示補充的說明性信息,例如時間、判定點或其他非結構化的信息,而在序列圖中這些信息可以方便地添加到注釋中。
協作圖強調參與一個互動對象的組織,它由以下基本元素組成:活動者(Actor)、對象(Object)、連線(Link)和訊息(Message)。在UML中,使用實線標記兩個對象之間的連線,
協作圖中的訊息,由標記在連線上方的帶有標記的箭頭表示。協作圖包含類元角色和關聯角色,而不僅僅是類元和關聯。類元角色和關聯角色描述了對象的配置和當一個協作的實例執行時可能出現的連線。當協作被實例化時,對象受限於類元角色,連線受限於關聯角色。關聯角色也可以被各種不同的臨時連線所擔當,例如過程參量或局部過程變數。連線符號可以使用構造型表示臨時連線(《parameter》或《local》)或調用同一個對象(《self》)。雖然整個系統中可能有其他的對象,但只有涉及到協作的對象才會被表示出來。換而言之,協作圖只對相互之間具有互動作用的對象和對象間的關聯建模,而忽略了其他對象和關聯。
協作圖的內容
協作圖中可以有對象和主角實例,以及描述它們之間關係和互動的連線和訊息。通過說明對象間如何通過互相傳送訊息來實現通信,協作圖描述了參與對象中發生的情況。您可以為用例事件流的每一個變化形式製作一個協作圖。
描述回收機系統的接收儲存項用例中部分事件流的協作圖。
在協作圖中,您可以按照以下方式使用對象:
· 可以不指定對象的類。通常先製作只帶有對象的協作圖,而後再指定它們的類。
· 可以給對象命名,但如果您要區分同一個類的不同對象,則應給對象命名。
· 如果對象的類主動參與了協作,則可以將類本身在協作圖中表現出來。